In a real-time analytics system, various front-end software applications provide customer transaction data directly to an analytical engine that is capable of executing analytical tasks. An example of such an analytical engine is a prediction engine that provides useful, predictive output relating to a transaction with a customer. An analytical engine is capable of processing real-time data from a customer to execute analytical tasks and to generate output in real time. In many instances, the analytical engine will use the real-time data in coordination with a data mining model to generate a predictive output. A data mining model typically contains rules and patterns derived from historical data that has been collected, synthesized, and formatted. In many instances, a predictive output generated upon execution of an analytical task is fed into a business rule engine. The business rule engine will use the predictive output in conjunction with its rule set to determine if certain events should be triggered in a given front-end software application. For example, the business rule engine may determine that a special promotional offer should be provided to a particular customer given the content of the predictive output and the nature of the transaction with that customer. In some instances, the front-end software applications may directly process the predictive output.
Front-end software applications typically need to maintain direct interfaces to the analytical engines when providing real-time customer data or when requesting the execution of analytical tasks. In maintaining these interfaces, the front-end software applications are required to have detailed knowledge of the specific types of analytical engines and/or data mining models that are used. The front-end software applications will typically exchange input data directly with these analytical engines, and this data often has specialized formats that are associated with the specific types of analytical tasks to be executed. For example, the front-end software applications may need to provide input data of a particular type for the execution of prediction tasks, but may need to provide other forms of input data for the execution of analytical tasks of a different type.